package main

import (
	"flag"
	"fmt"
	"log"
	"os"

	"gitee.com/rocket049/mycrypto"
)

func init() {
	flag.Usage = func() {
		fmt.Fprintf(flag.CommandLine.Output(), "%s <input file(输入文件)> <output file(输出文件)>\n如果\"output file(输出文件)\"是减号\"-\"，那么将输出到标准输出(STDOUT),解密程序可以不指定输出文件的名字，它会自动使用原来的文件名。\n", os.Args[0])
		flag.PrintDefaults()
	}
}

func main() {
	flag.Parse()
	if len(flag.Args()) < 1 {
		flag.Usage()
		return
	}
	src := flag.Arg(0)
	dst := flag.Arg(1)
	log.SetFlags(log.LstdFlags | log.Lshortfile)

	mycrypto.SetShowLog()

	var pwd string
	fmt.Fprintf(os.Stderr, "Password:")
	_, err := fmt.Scanf("%s", &pwd)
	if err != nil {
		log.Fatalln(err)
	}

	var name string

	name, err = mycrypto.GetFilename(src, pwd)

	if len(dst) == 0 {
		dst = name
	}
	if err != nil {
		log.Fatal(err)
	}

	err = mycrypto.DecryptoFile(src, dst, pwd)
	if err != nil {
		log.Fatal(err)
	}

	if flag.Arg(1) != "-" {
		fmt.Printf("Name:%s\nSaved:%s\n", name, dst)
	}
}
